#ifndef ___fat32_recursos_y_bloqueos_funciones_auxiliares_1

#define ___fat32_recursos_y_bloqueos_funciones_auxiliares_1 1

#include <stdlib.h>
#include "f32_base.c"
#include "f32_rb_2.c"

fat32_descriptor_archivo * fat32_buscar_descriptor(unsigned long long);
unsigned long long fat32_descriptor_existe(char **);
unsigned long long fat32_nuevo_descriptor(char **, unsigned char);

fat32_descriptor_archivo * fat32_buscar_descriptor (unsigned long long descriptor) {
  fat32_descriptor_archivo * ptrDescriptor = fat32_recursos.descriptores;
  unsigned int cantidadRem = fat32_recursos.cantDescriptores;
  for(; cantidadRem; ptrDescriptor ++, cantidadRem --)
    if ((ptrDescriptor -> descriptor) == descriptor)
      return ptrDescriptor;
  return NULL;
}

unsigned long long fat32_descriptor_existe (char ** ruta) {
  unsigned int posicion;
  for (posicion = 0; posicion < fat32_recursos.cantDescriptores; posicion ++)
    if (fat32_comparar_rutas(ruta, ((fat32_recursos.descriptores)[posicion]).ruta) == FAT32_RUTAS_COINCIDEN)
      return ((fat32_recursos.descriptores)[posicion]).descriptor;
  return 0;
}

unsigned long long fat32_nuevo_descriptor (char ** ruta, unsigned char tipo) {
  fat32_descriptor_archivo nuevoDescriptor;
  nuevoDescriptor.ruta = fat32_crear_copia_ruta(ruta);
  nuevoDescriptor.tipo = tipo;
  nuevoDescriptor.descriptor = ++ fat32_siguiente_descriptor;
  nuevoDescriptor.dependientes = 1;
  fat32_recursos.descriptores = fb_cambiar_tamano(fat32_recursos.descriptores, sizeof(fat32_descriptor_archivo), 
                                                  ++ fat32_recursos.cantDescriptores);
  fat32_recursos.descriptores[fat32_recursos.cantDescriptores - 1] = nuevoDescriptor;
}

#endif